-
Notifications
You must be signed in to change notification settings - Fork 6.8k
Addresses comments in runtime feature discovery API #13964
Conversation
@larroy thanks! will take a look shortly. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
To me, it seems that there are new interfaces that can be combined together that can still achieve the same goal easily. Further minimizing those would be desirable.
Seems CI status is fully missing. |
What installation dependencies are you referring to? Libinfo is responsible for the information on libmxnet hence the suggestion. |
@szha I did the changes that you requested, but doesn't work due to libinfo.py being used before loading the library, is a rabbit hole, see this branch: https://github.com/larroy/mxnet/tree/feature_discovery_libinfo I discarded that idea. Can we provide a path to completion? |
@larroy I will need more information to offer advice on how to make it work. Alternatively, I can fork the branch and try to make it work. Let me know what you prefer. Update: |
I have been thinking more about this and I would have the following proposal to address your concerns: 1- Change the name of the implementation files and python module to Pedro. |
since the information is fixed after compilation, libinfo sounds more accurate. there's no need to maintain the consistency in naming between module name of python frontend and the file name in the backend. On the API design, yes, I feel strongly about the change, hence the change request. The reason is that the library information doesn't change after it's compiled, and since it's loaded only once, there's no futher need to query the backend, especially given that ctypes isn't exactly fast. Thus, having an API that queries all feature status at the beginning, and make that information available should be the goal. To achieve that goal, a single method with complete information should be the way to go. |
Thanks for the merge @szha |
* Prototype for runtime feature detection * Includes from diamond to quotes * Add CPU feature and BLAS flavour flags * Add BLAS flavour and CPU SSE and AVX flags * MXNET_USE_LAPACK * Fix C++ linting errors * Expose runtime feature detection in the public C API and in the Python API * Refactor Storage -> FeatureSet * Refine documentation * Add failure case * Fix pylint * Address CR comments * Address CR comments * Address CR * Address CR * Address CR * Address CR * remove old files * Fix unit test * Port CMake blas change from apache#13957 * Fix lint * mxruntime -> libinfo * Fix comments * restore libinfo.py * Rework API for feature detection / libinfo * Refine documentation * Fix lint * Fix lint * Define make_unique only for C++ std < 14 * Add memory include * remove old tests * make_unique fiasco * Fix lint
* Prototype for runtime feature detection * Includes from diamond to quotes * Add CPU feature and BLAS flavour flags * Add BLAS flavour and CPU SSE and AVX flags * MXNET_USE_LAPACK * Fix C++ linting errors * Expose runtime feature detection in the public C API and in the Python API * Refactor Storage -> FeatureSet * Refine documentation * Add failure case * Fix pylint * Address CR comments * Address CR comments * Address CR * Address CR * Address CR * Address CR * remove old files * Fix unit test * Port CMake blas change from apache#13957 * Fix lint * mxruntime -> libinfo * Fix comments * restore libinfo.py * Rework API for feature detection / libinfo * Refine documentation * Fix lint * Fix lint * Define make_unique only for C++ std < 14 * Add memory include * remove old tests * make_unique fiasco * Fix lint
* Prototype for runtime feature detection * Includes from diamond to quotes * Add CPU feature and BLAS flavour flags * Add BLAS flavour and CPU SSE and AVX flags * MXNET_USE_LAPACK * Fix C++ linting errors * Expose runtime feature detection in the public C API and in the Python API * Refactor Storage -> FeatureSet * Refine documentation * Add failure case * Fix pylint * Address CR comments * Address CR comments * Address CR * Address CR * Address CR * Address CR * remove old files * Fix unit test * Port CMake blas change from apache#13957 * Fix lint * mxruntime -> libinfo * Fix comments * restore libinfo.py * Rework API for feature detection / libinfo * Refine documentation * Fix lint * Fix lint * Define make_unique only for C++ std < 14 * Add memory include * remove old tests * make_unique fiasco * Fix lint
* Prototype for runtime feature detection * Includes from diamond to quotes * Add CPU feature and BLAS flavour flags * Add BLAS flavour and CPU SSE and AVX flags * MXNET_USE_LAPACK * Fix C++ linting errors * Expose runtime feature detection in the public C API and in the Python API * Refactor Storage -> FeatureSet * Refine documentation * Add failure case * Fix pylint * Address CR comments * Address CR comments * Address CR * Address CR * Address CR * Address CR * remove old files * Fix unit test * Port CMake blas change from apache#13957 * Fix lint * mxruntime -> libinfo * Fix comments * restore libinfo.py * Rework API for feature detection / libinfo * Refine documentation * Fix lint * Fix lint * Define make_unique only for C++ std < 14 * Add memory include * remove old tests * make_unique fiasco * Fix lint
* Prototype for runtime feature detection * Includes from diamond to quotes * Add CPU feature and BLAS flavour flags * Add BLAS flavour and CPU SSE and AVX flags * MXNET_USE_LAPACK * Fix C++ linting errors * Expose runtime feature detection in the public C API and in the Python API * Refactor Storage -> FeatureSet * Refine documentation * Add failure case * Fix pylint * Address CR comments * Address CR comments * Address CR * Address CR * Address CR * Address CR * remove old files * Fix unit test * Port CMake blas change from apache#13957 * Fix lint * mxruntime -> libinfo * Fix comments * restore libinfo.py * Rework API for feature detection / libinfo * Refine documentation * Fix lint * Fix lint * Define make_unique only for C++ std < 14 * Add memory include * remove old tests * make_unique fiasco * Fix lint
Description
Returns a struct of LibFeature and reduces to a single API call querying of compile-time features.
Followup on API comments on #13549
@szha
Checklist
Essentials
Please feel free to remove inapplicable items for your PR.